<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>CPU bound</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/CPU_bound"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-CPU_bound rootpage-CPU_bound skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><i>CPU bound</i></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><p class="mw-empty-elt">
</p><p>En <a href="Informatique" title="Informatique">informatique</a>, <i><b>CPU bound</b></i> (ou <i><b>compute bound</b></i>) est l'état d'un <a href="Ordinateur" title="Ordinateur">ordinateur</a> lorsque le temps requis pour effectuer une tâche est déterminé principalement par la vitesse de son <a href="Processeur" title="Processeur">processeur</a>. L'utilisation du processeur est alors élevée, peut-être à 100%, pendant plusieurs secondes ou plusieurs minutes.
</p><p>Le terme français pour <i>CPU bound</i> est <b>subordonné au temps de calcul</b><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>, mais ce terme est peu utilisé et les informaticiens utilisent presque toujours le terme <i>CPU bound</i>.
</p><p>Lorsqu'un ordinateur est <i>CPU bound</i>, cela implique que l'augmentation de la puissance du processeur ou l'optimisation du <a href="Code_source" title="Code source">code source</a> du programme exécuté améliorera les performances globales de l'ordinateur.
</p>
<div class="mw-heading mw-heading2"><h2 id="Historique">Historique</h2></div>
<p>Le concept de <i>CPU bound</i> a été développé à l'époque des premiers ordinateurs, lorsque le cheminement des données entre les composants de l'ordinateur était plus simple et qu'il était possible de constater visuellement qu'un composant fonctionnait pendant qu'un autre était inactif. On pouvait alors voir facilement un très haut niveau d'activité pour des composants tels que le <a href="Processeur" title="Processeur">processeur</a>, la <a href="M%C3%A9moire_RAM" class="mw-redirect" title="Mémoire RAM">mémoire RAM</a>, les <a href="Lecteurs_de_bandes_magn%C3%A9tiques" class="mw-redirect" title="Lecteurs de bandes magnétiques">lecteurs de bandes magnétiques</a>, les <a href="Disques_durs" class="mw-redirect" title="Disques durs">disques durs</a>, les <a href="Lecteurs_de_cartes" class="mw-redirect" title="Lecteurs de cartes">lecteurs de cartes</a> et les <a href="Imprimantes" class="mw-redirect" title="Imprimantes">imprimantes</a>. Les ordinateurs qui présentaient un haut niveau d'activité de leurs périphériques étaient caractérisés comme <i><a href="I/O_bound" title="I/O bound">I/O bound</a></i>. Les ordinateurs qui étaient limités par la taille de leur <a href="M%C3%A9moire_RAM" class="mw-redirect" title="Mémoire RAM">mémoire RAM</a> étaient caractérisés comme <i><a href="Memory_bound" title="Memory bound">memory bound</a></i>.
</p><p>Avec l'avènement des <a href="Bus_(informatique)" class="mw-redirect" title="Bus (informatique)">bus</a> multiples, du <a href="Parall%C3%A9lisme_(informatique)" title="Parallélisme (informatique)">parallélisme</a>, de la <a href="Multiprogrammation" class="mw-redirect" title="Multiprogrammation">multiprogrammation</a>, du <a href="Multit%C3%A2che_pr%C3%A9emptif" title="Multitâche préemptif">multitâche préemptif</a>, des <a href="Cartes_graphiques" class="mw-redirect" title="Cartes graphiques">cartes graphiques</a> avancées, des <a href="Cartes_de_son" class="mw-redirect" title="Cartes de son">cartes de son</a> avancées et, généralement, des charges plus décentralisées, il est devenu moins facile d'identifier un composant particulier comme étant toujours un goulot d'étranglement. Dans les ordinateurs modernes, il est probable que le <a href="Goulot_d'%C3%A9tranglement_(informatique)" title="Goulot d'étranglement (informatique)">goulot d'étranglement</a> se déplace rapidement entre les composants de l'ordinateur.
</p><p>Les tâches exigées des ordinateurs modernes mettent souvent l'accent sur des composants assez différents, de sorte que la résolution d'un goulot d'étranglement pour une tâche peut ne pas affecter la performance d'une autre tâche. Pour cette raison, l'augmentation de la puissance du processeur n'a pas toujours un effet significatif sur la performance d'un ordinateur. L'état de <i>CPU bound</i> est maintenant l'un des nombreux facteurs pris en compte dans l'analyse de la performance des ordinateurs modernes.
</p>
<div class="mw-heading mw-heading2"><h2 id="Utilisation_de_fonctions_CPU_bound_pour_combattre_le_courrier_indésirable"><span id="Utilisation_de_fonctions_CPU_bound_pour_combattre_le_courrier_ind.C3.A9sirable"></span>Utilisation de fonctions <i>CPU bound</i> pour combattre le courrier indésirable</h2></div>
<p>En 1992, deux chercheurs d'IBM, <a href="Cynthia_Dwork" title="Cynthia Dwork">Cynthia Dwork</a> et <a href="Moni_Naor" title="Moni Naor">Moni Naor</a>, ont publié un article intitulé <i><a rel="nofollow" class="external text" href="https://web.archive.org/web/20030524232722/http://dsns.csie.nctu.edu.tw/research/crypto/HTML/PDF/C92/139.PDF">Pricing via Processing or Combating Junk Mail</a></i> (traduction littérale française, <i>Tarification via le traitement ou la lutte contre le courrier indésirable</i>), suggérant la possibilité d'utiliser des fonctions <i>CPU bound</i> pour dissuader les abuseurs d'envoyer du <a href="Courrier_ind%C3%A9sirable" class="mw-redirect" title="Courrier indésirable">courrier indésirable</a>. La suggestion était basée sur l'idée que les utilisateurs d'ordinateur sont plus susceptibles d'abuser d'une ressource si le coût de la ressource est négligeable. Selon ce raisonnement, les pourriels sont très répandus parce que l'envoi d'un pourriel se fait à un coût minime pour l'expéditeur.
</p><p>Dwork et Naor ont suggéré que le nombre de pourriels pourrait être réduit en injectant dans le processus d'envoi d'un courriel un coût supplémentaire sous la forme d'une fonction <i>CPU bound</i> coûteuse, c'est-à-dire une fonction qui générerait une grande utilisation du CPU. Ces fonctions consommeraient les ressources CPU de l'expéditeur pour chaque message, empêchant ainsi l'envoi de quantités importantes de pourriels dans une courte période.
</p><p>Le processus proposé fonctionnerait de la façon suivante :
</p>
<ul><li>Soit E l'expéditeur, D le destinataire, C un courriel et F() une fonction <i>CPU bound</i> (c'est-à-dire une fonction que consomme beaucoup de CPU durant son exécution).</li>
<li>Si D a accepté au préalable de recevoir des courriels de E, alors C est transmis comme d'habitude, sans activation de la fonction <i>CPU bound</i>.</li>
<li>Sinon, E doit calculer F(C) et envoie (C, F(C)) à D. D vérifie si ce qu'il reçoit de E est de la forme (C, F(C)). Si oui, D accepte C. Sinon, D rejette C.</li>
<li>Le calcul de F(C) se faisant dans le logiciel de courrier électronique de E et la vérification de F(C) se faisant dans le logiciel de courrier électronique de D, ce processus n'implique aucune complexité pour les utilisateurs du courrier électronique.</li>
<li>La fonction F() est choisie de sorte que la vérification par D soit relativement rapide (de l'ordre d'une milliseconde) et que le calcul par E soit quelque peu lent (de l'ordre de plusieurs secondes). Ainsi, E sera découragé d'envoyer C à plusieurs destinataires sans accord préalable. Le coût en termes de temps et de ressources informatiques pour le calcul de F() deviendra très prohibitif pour un polluposteur qui désire envoyer plusieurs millions de pourriels.</li></ul>
<p>Le problème majeur du processus proposé ci-dessus est que les processeurs rapides calculent beaucoup plus vite que les processeurs lents. De plus, les systèmes informatiques haut de gamme ont également des pipelines sophistiqués et d'autres caractéristiques avantageuses qui facilitent les calculs. En conséquence, un polluposteur doté d'un système de pointe ne sera guère affecté par une telle dissuasion, alors qu'un utilisateur typique ayant un système médiocre en souffrira. Si un calcul prend quelques secondes sur un nouveau PC, le même calcul peut prendre une minute sur un ancien PC, et plusieurs minutes sur un téléphone intelligent, ce qui peut être gênant pour les utilisateurs de vieux PC, et probablement inacceptable pour les utilisateurs de téléphones intelligents. La disparité dans la vitesse des processeurs clients constitue l'un des principaux obstacles à l'adoption généralisée de tout système basé sur une fonction <i>CPU bound</i>.
</p><p>L'utilisation d'une fonction <i><a href="Memory_bound" title="Memory bound">memory bound</a></i> plutôt qu'une fonction <i>CPU bound</i> permet de réduire ce problème.
</p>
<div class="mw-heading mw-heading2"><h2 id="Références"><span id="R.C3.A9f.C3.A9rences"></span>Références</h2></div>
<div style="font-size:85%; padding-left:1.6em; margin:0.3em 0;"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé <span class="">« <a class="external text" href="https://en.wikipedia.org/wiki/CPU-bound?oldid=796203217">CPU-bound</a> » <small>(<a class="external text" href="https://en.wikipedia.org/wiki/CPU-bound?action=history">voir la liste des auteurs</a>)</small></span>.</div>
<div class="references-small decimal" style=""><div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id_Fiche=8875278">Fiche terminologique de l'Office québécois de la langue française</a></span>
</li>
</ol></div>
</div>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<ul><li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.wisegeek.com/what-does-it-mean-to-be-cpu-bound.htm">CPU bound description</a></li>
<li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://stackoverflow.com/questions/868568/cpu-bound-and-i-o-bound">Stackoverflow CPU bound terminology</a></li></ul>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de l’informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2017-12-31" href="https://fr.wikipedia.org/wiki/?title=CPU_bound&oldid=144042640">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>